home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 8.2 KB | 287 lines | [TEXT/MPS ] |
- /*
- File: Kernel.idl
-
- Contains: Kernel Interfaces
-
- Version: Technology: System 8
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __KERNEL_IDL__
- #define __KERNEL_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __ERRORS_IDL__
- #include <Errors.idl>
- #endif
- #ifndef __MACHINEEXCEPTIONS_IDL__
- #include <MachineExceptions.idl>
- #endif
- #ifndef __TIMING_IDL__
- #include <Timing.idl>
- #endif
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* Kernel basics*/
- typedef OpaquePtr AddressSpaceID;
-
- typedef OpaquePtr IOPreparationID;
-
- typedef OpaquePtr SoftwareInterruptID;
-
- typedef OpaquePtr TaskID;
-
- typedef OpaquePtr TimerID;
-
- /* Tasking*/
- typedef UInt32 ExecutionLevel;
-
- typedef OpaquePtr SoftwareInterruptHandler;
- typedef OpaquePtr SecondaryInterruptHandler2;
- /* Memory System basics*/
- typedef SOMLargeStruct LogicalAddressRange; /* Derived from a struct of 8 bytes in size */
-
- typedef OpaquePtr LogicalAddressRangePtr; /* Substituted OpaquePtr for “LogicalAddressRange*” */
-
- typedef SOMLargeStruct PhysicalAddressRange; /* Derived from a struct of 8 bytes in size */
-
- typedef OpaquePtr PhysicalAddressRangePtr; /* Substituted OpaquePtr for “PhysicalAddressRange*” */
-
- /* For PrepareMemoryForIO and CheckpointIO*/
- typedef OptionBits IOPreparationOptions;
-
- typedef OptionBits IOPreparationState;
-
- typedef SOMLargeStruct AddressRange; /* Derived from a struct of 8 bytes in size */
-
- /* C's treatment of arrays and array pointers is atypical*/
- typedef OpaquePtr LogicalMappingTablePtr; /* Substituted OpaquePtr for “LogicalAddress*” */
-
- typedef OpaquePtr PhysicalMappingTablePtr; /* Substituted OpaquePtr for “PhysicalAddress*” */
-
- typedef OpaquePtr AddressRangeTablePtr; /* Substituted OpaquePtr for “AddressRange*” */
-
- typedef SOMLargeStruct MultipleAddressRange; /* Derived from a struct of 8 bytes in size */
-
- /*
- Separate C definition so that union has a name. A future version of the interfacer
- tool will allow a name (that gets thrown out in Pascal and Asm).
- */
- typedef SOMLargeStruct IOPreparationTable; /* Derived from a struct of 56 bytes in size */
-
- typedef OptionBits IOCheckpointOptions;
-
- /* For SetProcessorCacheMode*/
- typedef UInt32 ProcessorCacheMode;
-
- /* For GetPageInformation*/
- typedef UInt32 PageStateInformation;
-
- typedef SOMLargeStruct PageInformation; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr PageInformationPtr; /* Substituted OpaquePtr for “PageInformation*” */
-
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- typedef OpaquePtr AreaReservationID;
-
- typedef OpaquePtr BackingObjectID;
-
- typedef OpaquePtr EventGroupID;
-
- typedef OpaquePtr MessageID;
-
- typedef OpaquePtr ObjectID;
-
- typedef OpaquePtr PortID;
-
- typedef OpaquePtr ReceiveID;
-
- typedef OpaquePtr KernelProcessID;
-
- typedef OpaquePtr KernelQueueID;
-
- /* System Information */
- typedef SOMLargeStruct SystemInformation; /* Derived from a struct of 60 bytes in size */
-
- typedef OpaquePtr SystemInformationPtr; /* Substituted OpaquePtr for “SystemInformation*” */
-
- /* KernelQueue Related Declarations */
- typedef OptionBits KernelQueueOptions;
-
- /* Event Flag Related Declarations */
- typedef UInt32 EventGroupMask;
-
- typedef UInt32 EventFlagOperation;
-
- typedef SOMLargeStruct KernelNotification; /* Derived from a struct of 24 bytes in size */
-
- typedef OpaquePtr KernelNotificationPtr; /* Substituted OpaquePtr for “KernelNotification*” */
-
- /* Task Related Declarations */
- typedef OSType KernelProcessName;
-
- typedef OSType TaskName;
-
- typedef OpaquePtr TaskProc;
- typedef UInt32 TaskStorageIndex;
-
- typedef OpaquePtr TaskStorageValue; /* Substituted OpaquePtr for “void*” */
-
- typedef UInt32 TaskRelationship;
-
- typedef OptionBits SetTaskPriorityOptions;
-
- typedef OptionBits TaskOptions;
-
- /* Priorities are used by CreateTask, SetTaskPriority, and AcceptMessage. */
- typedef OptionBits TaskPriority;
-
- typedef OptionBits TerminateOptions;
-
- typedef OSType SchedulerState;
-
- typedef SOMLargeStruct TaskInformation; /* Derived from a struct of 60 bytes in size */
-
- typedef OpaquePtr TaskInformationPtr; /* Substituted OpaquePtr for “TaskInformation*” */
-
- typedef OptionBits KernelProcessOptions;
-
- typedef SOMLargeStruct KernelProcessInformation; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr KernelProcessInformationPtr; /* Substituted OpaquePtr for “KernelProcessInformation*” */
-
- /* Timer related declarations */
- typedef OptionBits TimerOptions;
-
- /* Address Space Management related declarations */
- /* General definitions*/
- typedef OptionBits AreaOptions;
-
- typedef OptionBits InterspaceCopyOptions;
-
- typedef UInt32 AreaUsage;
-
- typedef UInt32 MemoryAccessLevel;
-
- typedef UInt64 BackingAddress;
-
- typedef UInt64 BackingLength;
-
- /* For GetSpaceInformation*/
- typedef SOMLargeStruct SpaceInformation; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr SpaceInformationPtr; /* Substituted OpaquePtr for “SpaceInformation*” */
-
- /* For GetAreaInformation*/
- typedef SOMLargeStruct AreaInformation; /* Derived from a struct of 44 bytes in size */
-
- typedef OpaquePtr AreaInformationPtr; /* Substituted OpaquePtr for “AreaInformation*” */
-
- /* For Memory Reservations*/
- typedef OptionBits ReservationOptions;
-
- /* For GetReservationInformation*/
- typedef SOMLargeStruct ReservationInformation; /* Derived from a struct of 16 bytes in size */
-
- typedef OpaquePtr ReservationInformationPtr; /* Substituted OpaquePtr for “ReservationInformation*” */
-
- /* For ControlPagingForRange*/
- typedef UInt32 PageControlOperation;
-
- /* For ReleaseData*/
- typedef OptionBits ReleaseDataOptions;
-
- /* Message related declarations */
- typedef UInt32 MessageType;
-
- /* Kernel Message Types*/
- /* Options for CreatePort*/
- typedef OptionBits PortOptions;
-
- /* Options for CreateObject*/
- typedef OptionBits ObjectOptions;
-
- /* Options for LockObject*/
- typedef OptionBits ObjectLockOptions;
-
- /* Options for SetObjectInformation;*/
- typedef OptionBits SetObjectOptions;
-
- /* Message System Options */
- typedef OptionBits SendOptions;
-
- typedef OptionBits ReceiveOptions;
-
- typedef OptionBits AcceptOptions;
-
- /* Message Definition (Given to receiver or acceptor) */
- typedef SOMLargeStruct MessageControlBlock; /* Derived from a struct of 64 bytes in size */
-
- typedef OpaquePtr MessageControlBlockPtr; /* Substituted OpaquePtr for “MessageControlBlock*” */
-
- typedef SOMLargeStruct MessageInformation; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr MessageInformationPtr; /* Substituted OpaquePtr for “MessageInformation*” */
-
- /* Message Accept proc used to receive a message */
- typedef OpaquePtr MessageAcceptProc;
- /* Version for GetPortInformation */
- /* Buffer used to return message port information */
- typedef SOMLargeStruct PortInformation; /* Derived from a struct of 48 bytes in size */
-
- typedef OpaquePtr PortInformationPtr; /* Substituted OpaquePtr for “PortInformation*” */
-
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* Tasks */
- /* Software Interrupts */
- /* Completion Routines */
- /* Secondary Interrupts */
- /* Timers */
- /* IO related Operations */
- /* Memory Operations */
- /* Processor Cache Related */
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- /* Queues */
- /* Event Flag Related Operations */
- /* KernelProcess Related Operations */
- /* Task Related Operations */
- /* Secondary Interrupt Handlers */
- /* Timers */
- /* Address Space Management */
- /* Area Management */
- /* Processor Cache Related */
- /* Paging control operations */
- /* Message Port Management */
- /* Message Object Management */
- /* Message Transaction Operations */
- /* Miscellaneous Messaging operations */
- /* Miscellaneous System operations */
- /* Notifications */
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- /* These are defined in Memory for System 7 */
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __KERNEL_IDL__ */
-
-